{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import time\n",
    "import math\n",
    "import matplotlib.pyplot as plt\n",
    "import cv2\n",
    "from PIL import Image, ImageFont, ImageDraw\n",
    "import random\n",
    "from multiprocessing import Process\n",
    "import gc\n",
    "import sys\n",
    "import pickle\n",
    "import glob"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def gen_one_img(image, text, idx):\n",
    "    dr = ImageDraw.Draw(image)\n",
    "    pianyix=random.randint(5,25)\n",
    "    pianyiy=random.randint(1,10)\n",
    "    font = fontarr[idx]\n",
    "    dr.text((pianyix,pianyiy), text, font=font, fill=\"#000000\")\n",
    "    return image"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def gen_text(length, cut_pdf_all_word, idx):\n",
    "#     min(length, len(cut_pdf_all_word))\n",
    "    output = list(cut_pdf_all_word[idx:idx+min(length, len(cut_pdf_all_word))-4])\n",
    "    # 加两个随机生成的字符\n",
    "    output += idx2word[random.randint(0, max_idx)]\n",
    "    output += idx2word[random.randint(0, max_idx)]\n",
    "    output += idx2word[random.randint(0, max_idx)]\n",
    "    output += idx2word[random.randint(0, max_idx)]\n",
    "    label = []\n",
    "    for word in list(output):\n",
    "        if word in word2idx:\n",
    "            label.append(word2idx[word])\n",
    "        else:\n",
    "            output.remove(word)\n",
    "    output = ''.join(output)\n",
    "#     for i in range(length):\n",
    "#         label.append(random.randint(0, len(wenziarr)-1))\n",
    "#         output += idx2word[label[-1]]\n",
    "    return output, label\n",
    "def jiazaosheng(im,color,percent):\n",
    "    width,height,_=im.shape\n",
    "    for i in range(int(width*height*percent)):\n",
    "        x=random.randint(0,width-1)\n",
    "        y=random.randint(0,height-1)\n",
    "        #print width,height,x,y\n",
    "        im[x,y]=color\n",
    "def cut_lines(img, jingxidu=50):\n",
    "    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n",
    "    y_sum = np.sum(gray, axis = 1)\n",
    "    max_y = max(y_sum)\n",
    "    min_y = min(y_sum)\n",
    "    yuzhi = max_y - int((max_y - min_y) / jingxidu)\n",
    "    start_y = []\n",
    "    end_y = []\n",
    "    for i in range(1, len(y_sum)):\n",
    "        if y_sum[i] > yuzhi and y_sum[i-1] < yuzhi:\n",
    "            end_y.append(i)\n",
    "        if y_sum[i] < yuzhi and y_sum[i-1] > yuzhi:\n",
    "            start_y.append(i)\n",
    "    output = []\n",
    "    if len(start_y) == len(end_y):\n",
    "        for i in range(len(start_y)):\n",
    "            output.append([start_y[i], end_y[i]])\n",
    "    return output"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABH4AAACZCAYAAABZu/0wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd7hcVbnH8d+S6hUpkoAhgCCEkgvSQld6CSC9N6OgoYPSI16pQuAiivTQ5aKUANJRCKG3JPQQSkQQuBAiBKnqBdf9I7NWfpPMnClnWibfz/Pw8GafOTN7Ztasvc+e911viDEKAAAAAAAA3edL7d4BAAAAAAAANAcXfgAAAAAAALoUF34AAAAAAAC6FBd+AAAAAAAAuhQXfgAAAAAAALoUF34AAAAAAAC6VK8u/IQQBocQXgohTAwhHNuonQIAAAAAAEDvhRhjfb8YwmySXpa0qaQ3JY2RtHuM8YXG7R4AAAAAAADqNXsvfncNSRNjjK9KUgjhGknbSip74adPnz5xiSWW6MVDAgAAAAAAwI0bN+5vMca+pX7Wmws//SW9Yf9+U9Ka098ohDBU0lBJWnzxxTV27NhePCQAAAAAAABcCOH1cj9r+uLOMcYRMcZBMcZBffuWvPgEAAAAAACAJujNhZ+3JC1m/160sA0AAAAAAAAdoDcXfsZIGhBCWDKEMKek3STd0pjdAgAAAAAAQG/VvcZPjPHzEMLBkv4oaTZJl8UYxzdszwAAAAAAANArvVncWTHGOyTd0aB9AQAAAAAAQAM1fXFnAAAAAAAAtAcXfgAAAAAAALoUF34AAAAAAAC6FBd+AAAAAAAAulSvFndGbe6///4cr7/++iVvM2nSJEnSwgsv3JJ9aqWxY8fmeNCgQW3ck/Z59NFHJUmrrbZa3jbnnHO2a3fQAd55550czz77tCm5T58+7dgdAG00YcKEHC+//PJV/95RRx2V4+HDh0uSZptttsbtWIt88MEHOfb5cJ555mn6433xxRc5XnDBBZvyeOgM//73vyVJ7777bt729a9/vV27M9N57rnncrzccsvleI455mjH7rTMU089leOlllpKkjTvvPO2a3eKpDHtvvSl+vI7br/99hxvtdVWde8TOg8ZPwAAAAAAAF2KCz8AAAAAAABdilKvEv75z3/mOJXhhBB6fb/nnHNOjj/99NMcb7HFFjk++eSTJUmnn3563vaVr3yl14/dCe66664cv/HGGznefvvt27E7bZFSiTfffPO87Xe/+12O+/Xr1/J9qscLL7yQ45TuOtdcc7Vrd8oaMWKEJGnHHXfM2zothb9v37453mijjXJ8xhln5HjNNdds6T7VK42LNCakzhsXaUxIrR8XJ510Uo5//vOfN/3xnKfmp+Passsu25LHZlxU75hjjsnxr371K0nFr5vz1H7f/3ScOeKII5qxi0314osv5tif02WXXVb1ffhn69BDD5VUvnTWS1PWXnvtHN9zzz2SpP79+1f9uO00ZsyYHK+++up13ccnn3yS49NOOy3Hxx9/vKTWl/H8/e9/z7GXMvq5dL3zSLrvrbfeOm+77777ctwt593N8vrrr+fY35ubbropx1/+8pdbuk+N9NZbb+X4N7/5TY7POuusHH/jG9+QJD3++ON5WzvPL5988skcjxs3TpK033771XVfzzzzTI5jjDn+7ne/W+feoVOQ8QMAAAAAANCluPADAAAAAADQpSj1KuG1117L8XHHHSepOL1v8cUXr+t+J06cmGNPo/NSrxVXXFGSNGzYsLzN0wxnZnvuuWeO0/OUpEceeSTH3/rWt1q6T6225JJLSipO3feyr2effbbl+1SP559/Psdpn3fbbbeKv/fhhx9Kkt5///28rZr4vffeq/q23qXjjjvuKNpHSTr33HMr7mcreeedH/3oRzneeOONc/zAAw/keNVVV23NjtUhjQt/vTttXKQxMf1+NmtcfP755zn+7//+7xyvscYaOR48eHBTHvvll1/O8XbbbTfDz7386z/+4z+asg9Sa8dFGhPV/l67xoX76KOPcpxKjCTphhtukCQdffTRJX/vsccey7F3lqk3vb8T+Ji9/PLLc3ziiSdKkhZbbLGK9+ElQrvssosk6d577y15Wy/p8fKOiy++WJJ0wgknVLHXveNl8CuttFKOayn9vuSSS3I833zz5XjKlCk5TuU5Xqbj57upPEQqLl9J52u77rpr1fvTCP48HnrooRzvtddeOb7++uvruu9XX31VUnG32fR5k6Tvfe97dd1vI/nxwv9OWGGFFUrePnViqqUL05///Occ+xziJeileJmwf7Z8vHVyqZefJ95yyy2SisvUfE5eZ511cnzjjTfmOJWGdsryAT53/uxnP5MkDRky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OCmVcd8q/jfRWmutNcM+ebaK39b/nvHFi9Ni5z4PlcuqKuWGG27IsR+rmiVlq0nFWVw+x6XMYD/u+bnB1ltvXfK+0/6Xy5r0zErPRE78mITORMYPAAAAAABAl+LCDwAAAAAAQJei1KtKd999d44PPPDAirdPpV6eRnnQQQflOKW1SsUpkxMmTJBUnFrpaemeqrfIIosUPZZUf6mXL+Do+1nJPffck2Mvc6hU3uUuvvjiHKdU1FoWyWwnX6y0moVLa5HeV39PPW2zkQsq9kZ63qlERZL23XffHPsigGmMeMq0LyzuC3f6ot5pATv/ee5pDwAAABr+SURBVDmeKt6uxZ19UTtP/d1jjz16/D0vzfCyoErPw59zpy3u3Gnjopljwhex3WSTTSRJf/vb3/I2X6TYyzG+/vWv53jTTTeVVDyGapnX/b4+/vjjknErFr4vpRXjwhe77JRxUYofL8uZPHmypOIylz333DPHXuaw99575ziVch177LF5m7+GJ554Yo4333zzGva6Pn6ekEoQvCTVy129lMBL7CuN2X79+uXYy9qWWWaZGR7PF2z2BU/TbSVp3nnnlTStDKRVqin1SiVuxx13XN7mr9s666yT4+WWWy7HqRQknWdKxaX91SwQ3SxpTHrJnvPz3FKlRT5veEnpXXfdlePBgwfnOL1G++yzT942duzYko+RtntZWCv48gGvvPJKjn2s+zwyatQoScXnDo888kiO11tvvRke46mnnsqxlwv63wSVFult9ULPvgjzX/7ylxynBZl9gXh/T31ecGls+f36326Vyq59XFUzr9fjjDPOyLEf43z+8vcvHSe8dLoab731liRpww03LPlzn2c64VwTtSPjBwAAAAAAoEtx4QcAAAAAAKBLUepVQSq58pTbalLCU6qprwx/+OGH59hTNVN6ot9ml112yds8nbvTeJqwp/15eUOp1eFThw5JGj58eI69G8PM4N13381xCKGh933yySdLkjbbbLO8zVN/vaNNO6XyDe+YUE7q5OPp3F4WeP311+fYS0Fq4Wne9ZY+9taUKVNy7CUKXuoyadIkScUpxa+99toMP5ekZ599Nsfjx4+XVJyW7OnaI0aM6M2uN4Q/z04bF40eE15Oc/rpp+c4pcfvtNNOeZt3U/JyjFJ8XNS7zxtvvHGOvdxmu+22q+v+emtWGheVlDtePP/8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9dRXL0HwLmmleEplWl3eU8p33XXXHHv6bSNSKtvFU7i9A8PMKL1/Pta9dKVU7GVMXlrpY6GWVFt34okn5jiVGXYy77yTOvVJtZUAdhp/7zptXDRiTLzxxhs5/q//+q8c++d6jz32kFQ875cq15he6vjnHXZGjRqVY+/oUUt5kqfBp/IA737k89D48eOrvt9adPu4qMZdd90lqbizo5c3eblJKkfw8hF/nt7l8c4778xx6uDmJQOp01dP0mvhZWFexjFp0qQcexlWKh2sl4/j4cOH59i71lUqaffOQ14mmUpZXn311bzNyya8O5GXGZ566qlV7XsjeAfWasosU4efK664Im/zMbLYYov1ep/OOOOMHA8cOFCStPHG0/q5eFdRLwtK52uN6DqaSnCk4jnQ54DUIWjo0KF5my+lsMACC+TY55Y0rr3Tlc9J/jnr27evJGmFFVbI27wrkn+2GrH0wpZbbjnDNi9D8vNuL+U78MADa34s7+hUrvw0dZp0XpLq5+iNduWVV0oqXkrBj42VpOOwJP3whz/M8YILLpjjN998U1L9xxDnn5tGSOWCtZQNSqXPI7yce+edd65rf3yu9nFx0EEHSSru+OtzazruScVldv65RWuQ8QMAAAAAANCluPADAAAAAADQpUJaBb4VBg0aFL0cqJuNHDlSknT//ffnbeecc067dqcmH374YY49PW/MmDEz3DZ1AZGk1VdfvSn74+m+nraZuuZI0txzz92Ux24WL4VbaKGFcuydfmYWKSXen1M7eSef9957T1L5jjadwOdgT8X10g3vvDMz8DKJThsXaUxIjRkX3gnFU5srlbiWk+Y7L3nx/TzkkEPqut9SvJuQp+t76ZGXIva2jGFWGhflpNfWy2aeffbZHHsZSy0uv/zyHO+zzz6SissQTzrppLrud2bhz8/LYvbbbz9JxWWW5Tom+nuSOuA0omSpXt5NybsTpe6Ae+21V97WzO6uqbteK7o3OT8X9WOjd6tL76u/5/V+hjqZlxF7J6Rqyoeb4be//W2OvROdd/TtNF988UWOvQte+tsmlQ3OrLxEO/195HOEl1jVy89Xb7/99hynZQr8/NtLID1efvnlc+yd1tA4IYRxMcZBpX5Gxg8AAAAAAECX4sIPAAAAAABAl6LUq0lSSuF9992Xt3kacSfzdEdPiV5iiSXasDfFvBOK+9KX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\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABH4AAACZCAYAAABZu/0wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd7hcVbnH8d+SInIVQRK5uYCG5oVIJzTpkQ4KSG8GCIQqXYp0AelFikogkdCk916jdBJ6CUgEIiAEpAjSvMC+f2TWym9y9j5TzrQM38/z8PBmT9tnZu0ye953vSHLMgEAAAAAAKD7fK3dKwAAAAAAAIDm4MIPAAAAAABAl+LCDwAAAAAAQJfiwg8AAAAAAECX4sIPAAAAAABAl+LCDwAAAAAAQJfq04WfEMLaIYQXQggTQggHNWqlAAAAAAAA0Hchy7L6HhjCdJL+KmkNSa9JGitpyyzLnmvc6gEAAAAAAKBe0/fhsctImpBl2UuSFEK4VNIGkgov/PTr1y8bOHBgH14SAAAAAAAA7tFHH/1nlmX9827ry4WfOSW9av9+TdKyU98phDBc0nBJ+t73vqdx48b14SUBAAAAAADgQggTi25r+uTOWZaNyLJscJZlg/v3z734BAAAAAAAgCboy4Wf1yXNbf+eq7QMAAAAAAAAHaAvF37GSloghDBPCGFGSVtIur4xqwUAAAAAAIC+qnuOnyzLPg8h7CHpNknTSRqVZdmzDVszAAAAAAAA9ElfJndWlmU3S7q5QesCAAAAAACABmr65M4AAAAAAABoDy78AAAAAAAAdCku/AAAAAAAAHQpLvwAAAAAAAB0qT5N7oza/PnPf07xKqus0sY1aY9x48alePDgwW1ck/Z58MEHJUnLL798m9cEneLNN99M8fTTT9kl9+vXrx2rA6CNxo8fn+KFFlqo6sf98pe/TPHxxx8vSZpuuukat2It8v7776fY94ff/OY3m/56X3zxRYpnn332prweOsOXX34pSXrrrbfSsv/+7/9u1+pMc55++ukUL7jggimeYYYZ2rE6LfP444+neL755pMkzTLLLO1anTJxTLuvfa2+/I6bbropxeutt17d64TOQ8YPAAAAAABAl+LCDwAAAAAAQJei1CvHZ599luIZZ5xRkhRC6PPznnnmmSn++OOPU7zOOuukeI899pAknXXWWX1+vU5z6623pvjVV19N8UYbbdSO1Wmr1VZbLcWXXHJJigcMGNCO1anZc889l+KY7vr1r3+9XatTaMSIEZKkjTfeOC3r5BR+X88TTzwxxcsuu2w7VqdmcVzEMSF13riIY0Jq/bj49a9/neLDDz+86a/nPDU/Htf+93//tyWvzbioz9/+9jdJ5e+b89R+X/9YsrLffvs1ce2a4/nnn0+x/02jRo2q+jl82/JtrpIVV1wxxXfeeackac4556z68e00duzYFC+99NJ1PcdHH32U4uOOOy7FRxxxhKTWl/H861//SrGXMvq5dL37kfjcP/nJT9KyMWPGpPi//uu/6nrer4qJEyem2D8bP8+flr3++uspPuOMM1J86qmnpvj73/++JOnhhx9Oy9p5vHjsscdS/Oijj0qSdt5557qe68knn0xxlmUpXn/99etcO3QKMn4AAAAAAAC6FBd+AAAAAAAAuhSlXjleeeWVFB9yyCGSytP7vve979X1vBMmTEixp9F5qVe05557ptjTDLvRU089leJFF120jWvSfHldI9Zaa60U+3vRyZ555pkUx3XeYostKj7ugw8+kCS9++67aVk18TvvvFP1fb1Lx80331y2jlLnlVH2798/d/mPf/zjFP/lL39J8ZJLLtn0dapXHBf+fnfauIhjYur1bNa4+Pzzz1N80kknpXiZZZZJ8dprr92U1/7rX/+a4g033LDH7V7+NfPMMzdlHaTWjos4Jqp9XLvGhfvwww9TvNRSS6X4yCOPlCQdcMABTV+HTuFj9o9//GOKjzrqKEnS3HPPXfE5vERoyJAhkqS77747975evuTlHeeee66kKZ9BM3l5zGKLLZbiWkq/zzvvvBR/+9vfTvF7772X4lie42U6fr4by0Ok8vKVRRZZRJK0+eabV70+jXbfffeleJtttknxFVdcUdfzvfTSS5LKu81eddVVKf75z39e1/M2kh8v/HvCwgsvnHv/2Impli5MsZxUKu9OVXRekse3rX/84x8p/p//+Z+qn6PV/Dzx+uuvlyRdc801aZnvk6eVLry+7zz00EMlSUOHDk3LZpppprqed/vtt0+xHxunlakpUI6MHwAAAAAAgC7FhR8AAAAAAIAuRalXlbxLgpd9bb311r0+ztMF//Of/1R8nZhSu/vuu6dl3pVi1llnrbyyTfL3v/9dUv2l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q3RMrTfjx/8m/660/PLL1/V8qF81Xb3uk1TUfuLHBcsBAAAAAADQZjV19QIAAAAAAMC0o6rJnbuVp4t6OUaeSrdPbfrpJ7+1nrbskwteeumlNT1f9Pbbb9f1uFbwcpO8VGOfQO2aa65JcV55hJe2rLfeein21G8vsWgXnwAxpqJX480330xxpbRln1jvtttuS7FPcttqnmobJ4UdMWJEWuaTFn7yyScp/uijj3rc7pPM+eRzPrHlGmusIam8RNIf5+WOnqK7wAILVPX3NJqP2VomLH/vvfdSXEtqcKeI48InCq5lXHgp6+67757iSuPijjvuSMu8VDdvXDRzTPj4jCVJl19+eVq25JJLprhowua4XT/00ENpmZd9+T5n3nnnTXEcZ0X7RS8/vOSSSySVj1N/rr///e+5z1Gvvo6LWvYXcUxIte0vWrWviOvkx4AisbzHy3+K3HDDDSmOE4o//PDDaVlRiZRPYrvWWmtJKi//GDZsWIrXXnvtFC+77LIp9lKIeuSVqEjlE5fG1/AJiH1f79Zff/0ey6699tqK63HCCSdUvE8zeLm7byPTTTddikeOHJniuO/w88GhQ4cqj09Mm8c/u6IJjeP5mG+z9ZZozDPPPHU9zkvZ/H2phY/lyI+5v/vd71LspXWxLNdLdf045OWnPsGu71/z+HvvJXdxIvONNtqo18dL5RPzxnIan4KgqDwvTuLrx844LYNUfvz1EvTYuKWRExdX4+abb07xPffck+LDDz88xfFz8HNm326GDBmSYh+H8djgx9mi47Pvc0455ZSy/0uNL0WNx75qjhde7h2332rKIv09rLT+/j3Py/0q8RL1p59+OsWUerUeGT8AAAAAAABdigs/AAAAAAAAXeorXerlPIU5lmlJ0t13313X81100UW93h5TsaXy7luxHMxTFeecc87c53j55ZclFac7N4unxnrqr6e+eip95N1KPI3SZ6KPpVwPPPBAWvb444+n2Dt8+Xp0ggEDBlR9X0/L9xLASrxUBJU1ogtJX80yyyy93u6dNKopzehmfe2iWI1GjIlXX301xYcddliKfbveaquten0OT6X3MRI7/nnZxV133ZViLx/w8i0vTcjzm9/8JsWx1Mu76nh5QF73m27Xqn3FrbfeKqm8s6OXCftnnVcW873vfS/FXp7mnZ58XERF5xFexh67vhR1C5s0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\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABH4AAACZCAYAAABZu/0wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd7gb1bXG4W9fCAFCx6YasCmhh+YQenEohpAAoVcDpvcWWkLvvYYaCKZjuukYTLvABUwHU0wHY3qHQCCZ+4e1tz/ZoyONpKNzLP/e5+Fhec6RNEfa2jMarbVXyLJMAAAAAAAAaD//09U7AAAAAAAAgM7BhR8AAAAAAIA2xYUfAAAAAACANsWFHwAAAAAAgDbFhR8AAAAAAIA2xYUfAAAAAACANtXQhZ8QQv8QwqshhNdDCAc1a6cAAAAAAADQuJBlWX03DGESSa9JWl3S+5KelLRZlmUjmrd7AAAAAAAAqNekDdx2aUmvZ1n2piSFEK6RtK6kihd+evTokfXu3buBhwQAAAAAAIB76qmnPs2yrGfezxq58DO7pPfs3+9L+t24vxRC2FHSjpI055xzavjw4Q08JAAAAAAAAFwI4Z1KP+v0xZ2zLLswy7K+WZb17dkz9+ITAAAAAAAAOkEjF35GSZrD/t2rtA0AAAAAAADdQCMXfp6UNF8IoU8IYTJJm0oa0pzdAgAAAAAAQKPqXuMny7KfQwi7S7pb0iSSLsmy7KWm7RkAAAAAAAAa0sjizsqy7A5JdzRpXwAAAAAAANBEnb64MwAAAAAAALoGF34AAAAAAADaFBd+AAAAAAAA2hQXfgAAAAAAANoUF34AAAAAAADaFBd+AAAAAAAA2hQXfgAAAAAAANoUF34AAAAAAADaFBd+AAAAAAAA2hQXfgAAAAAAANrUpF29A53pp59+SvEvfvGLpt3vd999l+Knn346xSuuuGKKv/jiC0nSQw89lLatu+66TduHrvTjjz+m+Oabb07x2muvneKpp566pfvUVb788ssUn3POOSneaaedUtyzZ8+W7lMR//nPf1I8ySSTdOGeFBffY5L0q1/9KsWTTTZZV+xOmeeeey7FgwcPTvG2226b4nnnnbel+1REHBcT2piQWj8uPv300xT36NGjUx6ju2Bc1O6HH35I8YEHHpjifffdV5I011xz1Xxf119/fYqHDBmS4pNOOinFs8wyS1372Vk++OCDFPsxsNFzsc8//zz3MRZZZJEOb/fyyy+neMEFF2xoH9rJqFGjUvzLX/4yxZ01l3399de526eZZpqmPcbIkSNTfO6556Z47733TnGR99/E7ttvv01xHC/zzz9/V+1Oy3322WcpnmqqqVLs75dmevvtt1Mczy/69u3b8P2++eabKb7//vtTvMUWW6R48sknb/hx0L2R8QMAAAAAANCmuPADAAAAAADQptq61Ov9999PcSy92WijjdK2AQMGpLhIuvfDDz+c4rXWWivFq6++eopvuummsv9L0umnn57if/7znynu06dPzY/dHXh64/PPP5/inXfeOcX+t26zzTYt2a+uMN1006V41llnTfF8882X4vPPPz/Fm266aWt2rEb33Xdfis844wxJ0gEHHJC2+d/X3fh+eiryDTfckGJ/TVppscUWS/FVV12V4gUWWCDFRx55pCTpr3/9a+t2rEZxXMQxIbXPuGjGmPByk1//+tcpPvvss1Ps6dOtEMuw7r333rTtyiuvHO/nknTFFVdIkkIIhR6DcVG7Bx54IMVnnXVWimPZ1v/93/+lbXPMMUfuffzrX/+SJO2///5p21dffZViP//YbLPNxrv9G2+8keJ55pmn1l1viqOOOirFt956a4qPO+44SeXnX0V8/PHHKf7Nb36TYr+/Sy65JMVxjO+yyy5pm5er+zlaM8vlBg0alOJ11lknxTPOOGPN9/Hqq6+meKuttkrxlltuKal87qmXvy+++eabFHtJ4aKLLtrw40QjRoxIsZ8z/+Uvf5EkHXbYYQ0/xoUXXphin6uGDh2a4uHDh0tqTWlLHPNS+RzpSwLklc/6Zw0/pyhSFnfZZZel+He/+12Ki5RqeTlzPIfZZJNN0rZrrrmm5vvqSv/9739T7HNjXLLjiSeeSNv8uX/qqadS7O/lG2+8UVLzS58vv/zyFMfzRB/T2223XV33O/fcc6f44osvTrEfG+Lcueaaa9b1GOj+yPgBAAAAAABoU22d8eOZNCeffLIkaemll07bTjnllBT7t6SVvn2L/Js859+4xcUj/TF69eqV4v79+6fYv9Vphbjo9ffff5+2TTvttHXd1+GHH57if/zjHyn2RWw33nhjSdKUU05Z12N45tZss82W4v/5n+513XLgwIEp9m+Z4rdzkrTCCitIKh8L9WrG4uX+jf+dd94pSVpuueXStiL76Qsa+7cpf/7zn+vat2r873/sscdSfN5556XYv3UuImay+TfK9TrmmGNSHL8hkqQLLrhAUnMyfvy58PnJv1EtIo6LOCak9hkX9Y4Jd+2116bYFw32x9twww0lVV4A8r333ktxtWOOZxg98sgjKfbjVtwnz4jwb/h87oxz9Q477NDh446LcVG722+/PXd7fN9Xe80laa+99pIkvfPOO2lbXBxaKp+//Vv3Tz75ZLzfjd8cS9IhhxxS9bEb9eijj6bYn3vPUmpUlmUp/sMf/pDiapls/g13Zy2K7dmdnpnj2R+e8ZHH/74nn3wyxfHc1v+OerMOfKFrb0Tgi782M+PHeebdkksu2dB9/fvf/06xZ1v5Is4+H8bsplZk/HhWVb9+/VLsWRe+gHt8fWNmplSeYRPPqWvhz8Wkk479yPfWW29JKl+suIh6M/aK+vnnnyWVL0Lu82H8O6Sxixe/9tpraZvHvsB7zKaUpBlmmEFS+Zzcu3fvFFdaDP7xxx+XVH4MbIbrrrsuxfG43ezmQP7ZzStQYlWCn9egvXSvT84AAAAAAABoGi78AAAAAAAAtKm2LvVycWE0T7n0Egxf1GvkyJEpjqVhng45bNiwFPsivnmpjz169EixL87nqebV+IJ7U089dc23q+TFF1+UJN1zzz1pm6eR1ssXPXvhhRdS7KUHtfrhhx9S/Mc//jHFM800U4pvvvnmFPfs2bPwY3SmWOYhSaeeemqK6y2piz744IMUr7zyyik+88wzU7z22mvXfH95KfG+kGiRNGhfuNoXxvPU9kUWWaTm+6vGF0f96KOPUtyMko2Y+lpkAcRaePlpfC/74t/18kW6PWX8oIMOSvGxxx4rqbYSScZFx3zxRV9009+H1UovvAzYjz/x/p599tm0zcsYvETMS0HiIuJeztzsxZYZFx3zBbT9+OQLZfpxMo+Xd9x2222SpFtuuSVt82NgJSeeeKKk8vMTv913332X4liW3gy+8PRLL72UYi8ty9t/f97qLVnyc616f9fP/WIZVb0l5b6Qrr9HvAlGLKfweboW66+/vqTy8rZ6eWmwlwLtueeeDd93EY2Wv3u5Six1lMrLcv38a4899pDUmoWJ/Xn1ZQD69u2bYh8jccF5X4x4pZVWyr2Panze85Kkeku8onpLJH1euOuuu1L85Zdf5sbx84/PU764tX8miuWJceFuqXwJimWXXTbFvph/K8r9qnnmmWdS7J+f4lgosih8Lbyh0T777JPiV155peb78PPOuCi0ly92h+cV46t6RAshXBJC+DiE8KJtmyGEMDSEMLL0/+k7dzcBAAAAAABQVC1fZVwqqf842w6SdF+WZfNJuq/0bwAAAAAAAHQjVUu9six7KITQe5zN60papRQPkvSApAObuF+d5tBDD02xp897eYyX5sQV+H3leO+ucOmll6a4WkqwlwH4ivJ5PNXPO/McfPDBKY4dP4qK6XkxjVyq3HmmCO/84LGnvNfK00Fff/313NhTka+++urx7uOzzz5Lsacy+t/azDR356mmnm7v468eXv7hJYDeHSSmWq6xxhoNPVatYle6m266KW27++67U1ytXMM7E3mZg6foeqp0Hk9brZenh8dSHi9BqdYpphJPpZ955plTHMdvveWbsduFNLa0QypPwfbODLFT2eKLL17X4xXhnQon9HEReUcQT5/3MZJXpuLlWD6GPI3f5/tYeuDdaJx3RfJ9atX7vRGtGBfVxoTU3HHh/Fj34YcfptjLqvP43+/nH/FcY/bZZ6/62LHUTxr7HF500UVpm6fde5c4fz4b7Rxzxx13pNjPh7y8KfJuO3/6059S7KU53lknnjN9+umnuY/tf5M/95Gf73lHUz+m+rnWaqutJqm8rLOWsZVnl112SbGXMvo80h34MaUZ5XeN8jmy0vn1jz/+KKl86QYvi6rUASuej/vr0Ypud969bOutt05xXlm5HzuaUTaT1/3VS+R8CYpq56o+PopYeOGFc+N6+dwZO1X5c+wlUl5q3914iZQvb5HX5dI/j/p79ogjjkhxLGetdN7qr59/lojl4XvvvXfVfc4r1dt8883TNj8+19vVGc1X7+LOM2dZNroUfyhp5kq/GELYMYQwPIQw3D9YAQAAAAAAoHM13NUrG3NJOuvg5xdmWdY3y7K+3W0BXgAAAAAAgHZWb1evj0IIs2ZZNjqEMKuk4m2buoineHt5hKcGe3pl5GnU7rrrrkuxr8oeeXcqTwP3lOK81dq9O8Yqq6ySYk8Njl2daind8NTms88+W5K0xRZbpG21pPVF3hHF07K93Kje0rGY2usdq7xDlndl844Iefx59bRVT/esN3U7j7/WU0wxRYo9lXabbbZp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rja3+Pj1uBpfTN2z2Z988skUN/N1KuK6665LsWcueIZkHIc+R/jfH5tdSOXnhHk8G22ppZZK8RJLLNHh7fy8xisGYqbT73//+w5vX0ml19wX4z3yyCPH+3mzj/HdeXHnaipVaGy99dYpPu644yTVtqiwz6Nx3vPjTJ8+fVK8wQYbpNjfZ717965l12vii8jHzzPS2EqLSnyRas8QjJ9HfQFxryTxY4CfU8X78PfbGmuskWKfk/34GhsR5C1Sju6FjB8AAAAAAIA2xYUfAAAAAACANjXRlXpdeumlKd50001T7Kl8eVqd1livnj17pvjAAw9s+P78+YrlUCeccELaVi013N12220p9udz4MCBKd5mm23q2MvGNeP1/eGHH5qwJx1r9oJ6Re7PFwQ94ogjUhzfR2effXba5gtpxkXfJOmYY46RJO2///5pmy9c6tu9VPF3v/udpMoLIbei1Oubb75JsZc5VPPGG2/kbo9lKv6erUVcgLNaunsjGh0XPre2y7i4/PLLUzz//POn+M9//nNd91dvqZenl3uJ6ieffCKpcxdUnBDGRRwTUnPGhZd0+SLTefw1rVbS42644YYUn3vuuSneb7/9JJX/zX379k2xl/X5sTOm3ftC0L7A7sYbb5x7H/F5qVQq4aUy9ZZVR15W4+PCFzb1hUljSccf//jHtO23v/1tXY/99ttv5z62j8lYZlivSmOsyLgowkvWfOH/esu7fJmCqaaaquz/tfDj3quvvpriCy64IMVe6hXL7HwhcC+dfeutt1L80EMPpThvUWRfmNdLy/x2eR5//PEUP/XUUymOC097OU698+yjjz6a4mrvIX9Na1HtONLdSr2+/vrrFPsixb4w/DXXXCOpvCGOHy98rho5cuR4++Z/c7XYS578vMxLuwcPHpzi+JkmNuUpyku6vMzMGxzkNfTxJj6+HEfenPXxxx+n2Oe9V155JcX+d8fzCN+fbbfdNnf/Z5xxxhT75zt0b2T8AAAAAAAAtCku/AAAAAAAALSpiabUK6a4Pfjgg2mblzFV06pSrzfffFOStMkmm6Rt5513Xoo9zbsVvONHTAcsUt7lrr766hR7SupWW21V5941TzNSYJvdgSGv01grunrFVE9JuuWWW1I85ZRTpvjWW29N8WSTTTbefXiJwSKLLJLid955R1J5OcdCCy2U4jvuuCPFnqJa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\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABH4AAACZCAYAAABZu/0wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd7gcZdnH8d/zgigdQyKEGpTe0UhvYqEYCWhoIoIEAgiKgq8UCyIgvYtIJ3SQGooU6fBKCRBapIQmASQQOoiIzvtH9nny23Nmzu5sOyfL93NdXNyZ3Z2dc/bZmTkz9/3cIcsyAQAAAAAAoPv8T39vAAAAAAAAANqDCz8AAAAAAABdigs/AAAAAAAAXYoLPwAAAAAAAF2KCz8AAAAAAABdigs/AAAAAAAAXaqpCz8hhI1CCE+GECaFEPZt1UYBAAAAAACgeSHLssZeGMJMkp6S9HVJkyXdL2mbLMsmtm7zAAAAAAAA0KiZm3jtqpImZVn2rCSFEC6SNFJS4YWfwYMHZ8OGDWviLQEAAAAAAOAeeOCB17MsG5L3WDMXfhaU9KL9e7Kk1Xo+KYQwRtIYSVpkkUU0fvz4Jt4SAAAAAAAALoTwQtFjbZ/cOcuyU7MsG55l2fAhQ3IvPgEAAAAAAKANmrnw85Kkhe3fC1WWAQAAAAAAYABo5sLP/ZKWCCEsFkKYRdLWksa1ZrMAAAAAAADQrIbn+Mmy7OMQwh6SbpA0k6Qzsyx7vGVbBgAAAAAAgKY0M7mzsiy7TtJ1LdoWAAAAAAAAtFDbJ3cGAAAAAABA/+DCDwAAAAAAQJfiwg8AAAAAAECX4sIPAAAAAABAl+LCDwAAAAAAQJfiwg8AAAAAAECX4sIPAAAAAABAl+LCDwAAAAAAQJfiwg8AAAAAAECX4sIPAAAAAABAl5q5vzegnf7973+n+FOf+lTL1vv++++n+MEHH0zxOuusk+I333xTknTHHXekZSNHjmzZNvSnf/3rXym+8sorU7zJJpukeM455+zoNvWXt956K8W///3vU7zLLrukeMiQIR3dpjL+85//pHimmWbqxy0pL37HJGn22WdP8SyzzNIfm1Pl4YcfTvEll1yS4h/84AcpXnzxxTu6TWXEcTGjjQmp8+Pi9ddfT/HgwYPb8h4DBeOifh9++GGK99lnnxTvtddekqRFF1207nVdeumlKR43blyKjzjiiBTPP//8DW1nu7z88ssp9mNgs+dib7zxRooHDRpU9+v+9re/pXiZZZZpahu6yUsvvZTiT3/60ylu177snXfeyV0+11xztew9nn766RQvscQSKX7hhRdSXOb790n33nvvpTiOl6WWWqq/Nqfjpk6dmuI55pgjxf59aaXnn38+xfH8Yvjw4U2v99lnn03xrbfemuJtt902xZ/5zGeafh8MbGT8AAAAAAAAdCku/AAAAAAAAHSpri71mjx5copj6c0WW2yRlm2//fYpbjTde911103x17/+9RRffPHFkqQrrrgiLTv22GNTfNZZZ6V4scUWa+i9B4JHHnkkxbvuumuK/WfdYYcdOrlJA4KnF//xj39M8dZbb90fm1Po5ptvTvFxxx0nSfr5z3+els0zzzwd36Z6+XZ6KvL//d//9cfmFPr4449TvPTSS6f4wAMPlCT94he/6Pg21RLHRRwT0ow/Li677DJJ0tChQ5t+Dy83WXLJJVN84oknptjTpzshlmH95S9/ScvOP//8Xo9L0nnnnSdJCiGUeg/GRf1uu+22FJ9wwgkpjmVb99xzT1q28MIL567jn//8pyTpZz/7WVr29ttvp3jjjTdO8TbbbNPr9c8880yKv/CFL9S76S3x29/+NsVXX311in/3u99Jqj7/KmPKlCkp9nIkX9+ZZ56Z4jjGd9ttt7TMy9X9HK1d5XJeKjLvvPPW/bonn3wyxdttt12Kv/e970mSfvzjH6dl119/fe46Ntpooz6fs8IKK6T4y1/+coq9pNCf06yJEyemeNlll01xHC+//vWvW/ZeUvU+brnllkvx+PHjJXWmtCWOeal6H+lTAuSVz955550pXmmllVJcpizunHPOSfFqq62W4jKlWl7OHPm57EUXXVT3uvrTf//73xT7vjFO2XHfffelZf67f+CBB1I8YsSIFF9++eWSWl/6fO6556Y4nieeeuqpadmOO+7Y9Ht42ZcfG+K+c8MNN2z6PTAwkfEDAAAAAADQpbo64yfPHnvskeKjjjoqxX6XtOjuW3TQQQfVfJ+8DCK/w+d3YfyuTifESa8/+OCDtGzuueeu+/X1TGjmk9huueWWkqTZZput7vdwnrm10EILNbSOdvG7N7/85S9T7GMr3p2TpLXXXltSa36OVk9e/uc//1mStOaaa6ZlZbbT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/63sWWE77bRTitdZZx1J0ne+850+tx0zrnq6em1T8NBXW7wtAAAAAAAAaKGmJ3cGAAAAAADAwNT+WooO80mMvcQgTirp5V3OU5S9VCJOyPzLX/4y93WeWve5z32u1+M+Idcpp5ySYp8sbPXVV89ddy21JnX2lPjXXnut1+ONTjpcNBmil3Q1OvFb5BNle5plo5ZYYok+H/e0Xp94uz/FUpBTTz01Ldtll11S3IpSqDKlG6+//nqKjzrqqBTH1OVNN900LfMyhosvvjjFN9xwQ6/nerrrpz71qbq3p5123nlnSdL48ePTsqWWWirFrZgAz9Nry7jmmmskSWussUZatu+++za9Pa7ZceHp7I2OCxfT8qXOl0t6CWBfy6TpZTySdP/990uSZp111tzn+kSiZcZ9J0ogi7RyXDif0HVGGRfRT3/609zlzz33XN3r8M9/gw02SHFe6ZH/rhZaaKEU+2SkcZLmIl5K4JM7+2S6ZeRNMHraaael+Mtf/nKvx73U0csxfOJlF8eAl876hOv+8+dNmO/nLX7u1Op9Zx4///IpCNC3VVddNcU+oXOcvNz5eVKtcllJmm+++SQVN13xSb3jubK/71ZbbZVin47A3XjjjZKqv29+jPBGDL4dX/jCFyRVl1O1osTXS07zeHnTsGHDUpxXlvrxxx83vT1F/LwrlvL533YuNlFwjz76aO5zH3nkkRTvscceKc77262dYplZnHZDqp703ackieMwlhv25M0M8j4TP1749B5F4hj3fav/PeblpV6ijhkHGT8AAAAAAABdigs/AAAAAAAAXaorSr3WXHPNFMcyiJ5i+dahhx6alvkM587TkuMM50U8Ja8V3n33XUnVaX8+g3sr0vxjqvHIkSNLvS6miXpHJ+/q5cp08nI77rijJGnuuedu6PWN8rKbF154IcVl0sDr6XJQZn1PPfWUpOouauPGjUtxLINoRq1t9tTg3/72t7nPidv3xhtvpGVeGump7T528nS6XCOmEUvVXXgWWWQRSdXd4Lys01Nmi0oToqeffjp3eSzHKJtmHNPGvTzktttuS/Fyyy1Xan15mh0XPmYbHRee2tyJceFlTN498KKLLpJUXXYzduzYFHt3qv3337/Xei+44IIUe3fFLbec3gyzzHGkqFtOLV7+E/ev22+/fal1lOnk0i3jooiXpEVFxz3fR3zjG9+Q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uyzFP/zhD/tcr3cm+cpXvpJiT439/ve/L6m6K0Wt2e6bEX+WTpV65Tn77LNTfMwxx6TYS/yiz3zmMw29R5FGf+7Yycudf/75KY6dayTpySef7HNdxx9/fIobLd3oxPfTv3tlusnE76lU3Zli2223lVS700ZPsQOF7xdardlx8etf/7rmc70LYJ5OjwsvFfD08th96qGHHkrLvLzrS1/6UorLlMr4+3na9dtvvy2per/g36e4j5SkDTbYIMUPPPCApOoOUZ6ifuCBB6b4mmuukVS+xKRd48K/IzPa/sKPh37cLup2FkubvQvR6aefnmLv6uRlgpGX6S299NIpPuyww3o91/dZXvIz++yz525bHL9eauFd1lohHif333//tMy7gBaJZXTeye64445raBv8XMS/660s9SoqJ/TPd4011uj1eFE3KV/fTjvt1OtxL0mtVcZyxhlnpNhLM7zMv8y0CP751fosW32s9vKsPN7V66CDDkpx3OfG46lUXULTylIYL+f3/b534vPz7mjIkCEpLhrr3okq8q51/t4nnHBCimMX1rwxWI9Wl8v6scrPJaOiksRGPycvxY3l0VtssUVa5t0Tne8bY5dKL80q6l7ln0ncL/tzvQTwm9/8Zs3tj/bZZ58U+zEn7mf9+73zzjvXvd5GeZfaTpSGozwyfgAAAAAAALoUF34AAAAAAAC6VFeXek2ZMiXFMd2tVhp5kaK0xv322y/FPpN+LAUpSh32Lhae5h75bOjvvPNObhxTDtvVlaHIuuuum2LfTufpzJtttpmk6p+5SExXP+qoo9IyT4H0NNk555yzzi0u5qn5zaonhTl2VfDZ9Wt1fGmnWqntRZ9vLV7G43FMsS9KOS3zfv7ZtavUa+utt05xPeVLeVq9bd71qF3yxsWrr76a4ka7WDjf7w20ceElrM8995yk6rT7It5FKZbWzDPPPGmZd+rz36enncfS1qKSjzK864+XBMfylt/97ndNv0crxkXR/iJaZ511cl83EPYXscNST95NaPjw4SmOXYS8nMHLMVzc/2y++ea5j/v5jJcS1Cp/WGuttVLs2xHHuHf38TGdV3pW1ujRoyVJG2+8cVq24oorptg7FrlWHquLfPjhh21/DxfLew455JDcx708z7szxRIKPwc6/PDDa75fPAfz8tTrr78+xUsssUSK33jjjRTH0taiz6aM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\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fontslist=glob.glob('../data/ttf/*')\n",
    "fontarr=[]\n",
    "for line in fontslist:\n",
    "    if 'README' in line:\n",
    "        continue\n",
    "    fontarr.append(ImageFont.truetype(line.split('\\n')[0], 24))\n",
    "    image = Image.new(\"RGB\", (400, 43), (255, 255, 255))\n",
    "    image = gen_one_img(image, \"淮安市图审图纸图像错误检测系统\", -1)\n",
    "    image = np.array(image)\n",
    "    plt.figure(figsize=(20,5))\n",
    "    plt.imshow(image)\n",
    "    plt.show()\n",
    "    jiazaosheng(image, (255, 255, 255), 0.05)\n",
    "    image = cv2.erode(image, np.ones([2,1]), 1)\n",
    "    plt.figure(figsize=(20,5))\n",
    "    plt.imshow(image)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1804 {' ': 948, 'q': 1, 'w': 2, 'e': 3, 'r': 4, 't': 5, 'y': 6, 'u': 7, 'i': 8, 'o': 9, 'p': 10, 'a': 11, 's': 12, 'd': 13, 'f': 14, 'g': 15, 'h': 16, 'j': 17, 'k': 18, 'l': 19, 'z': 20, 'x': 21, 'c': 22, 'v': 23, 'b': 24, 'n': 25, 'm': 26, 'Q': 27, 'W': 28, 'E': 29, 'R': 30, 'T': 31, 'Y': 32, 'U': 33, 'I': 34, 'O': 35, 'P': 36, 'A': 37, 'S': 38, 'D': 39, 'F': 40, 'G': 41, 'H': 42, 'J': 43, 'K': 44, 'L': 45, 'Z': 46, 'X': 47, 'C': 48, 'V': 49, 'B': 50, 'N': 51, 'M': 52, '`': 53, '1': 54, '2': 55, '3': 56, '4': 57, '5': 58, '6': 59, '7': 60, '8': 61, '9': 62, '0': 63, '-': 64, '=': 65, '~': 66, '!': 67, '@': 68, '#': 69, '$': 70, '%': 71, '^': 72, '&': 73, '*': 74, '(': 75, ')': 76, '_': 77, '+': 78, '\\\\': 79, ']': 80, '[': 81, '{': 82, '}': 83, '|': 84, \"'\": 85, ';': 86, ':': 87, '\"': 88, '.': 89, '/': 90, '<': 91, '>': 92, '《': 93, '》': 94, '?': 95, '': 96, '金': 97, '注': 98, '意': 99, '母': 100, '排': 101, '连': 102, '续': 103, '性': 104, '负': 105, '放': 106, '气': 107, '孔': 108, '轴': 109, '心': 110, '平': 111, '台': 112, '梁': 113, '以': 114, '此': 115, '跷': 116, '板': 117, '撑': 118, '小': 119, '于': 120, '外': 121, '围': 122, '轻': 123, '常': 124, '闭': 125, '充': 126, '分': 127, '国': 128, '标': 129, '自': 130, '行': 131, '车': 132, '详': 133, '细': 134, '对': 135, '风': 136, '聚': 137, '苯': 138, '稳': 139, '压': 140, '管': 141, '相': 142, '确': 143, '定': 144, '控': 145, '制': 146, '取': 147, '铺': 148, '设': 149, '挑': 150, '空': 151, '洗': 152, '衣': 153, '机': 154, '堆': 155, '水': 156, '密': 157, '弹': 158, '到': 159, '达': 160, '盱': 161, '眙': 162, '传': 163, '建': 164, '议': 165, '天': 166, '有': 167, '效': 168, '等': 169, '还': 170, '肢': 171, '距': 172, '冲': 173, '击': 174, '悬': 175, '受': 176, '力': 177, '一': 178, '间': 179, '图': 180, '中': 181, '应': 182, '各': 183, '层': 184, '墙': 185, '项': 186, '薄': 187, '筑': 188, '材': 189, '料': 190, '地': 191, '点': 192, '入': 193, '人': 194, '身': 195, '安': 196, '全': 197, '钢': 198, '储': 199, '罐': 200, '基': 201, '础': 202, '计': 203, '规': 204, '范': 205, '内': 206, '护': 207, '栏': 208, '均': 209, '质': 210, '手': 211, '术': 212, '部': 213, '勒': 214, '克': 215, '斯': 216, '集': 217, '本': 218, '面': 219, '积': 220, '半': 221, '回': 222, '填': 223, '土': 224, '热': 225, '源': 226, '变': 227, '器': 228, '装': 229, '旅': 230, '馆': 231, '未': 232, '写': 233, '饮': 234, '食': 235, '实': 236, '收': 237, '否': 238, '则': 239, '散': 240, '垫': 241, '经': 242, '声': 243, '疏': 244, '出': 245, '口': 246, '厕': 247, '所': 248, '粘': 249, '网': 250, '开': 251, '关': 252, '联': 253, '边': 254, '警': 255, '铃': 256, '结': 257, '焊': 258, '接': 259, '酮': 260, '引': 261, '楼': 262, '沿': 263, '作': 264, '岩': 265, '棉': 266, '腋': 267, '角': 268, '丝': 269, '覆': 270, '满': 271, '公': 272, '共': 273, '带': 274, '通': 275, '民': 276, '政': 277, '府': 278, '喑': 279, '预': 280, '落': 281, '震': 282, '补': 283, '强': 284, '东': 285, '区': 286, '学': 287, '校': 288, '辆': 289, '锚': 290, '单': 291, '位': 292, '井': 293, '紧': 294, '邻': 295, '只': 296, '合': 297, '技': 298, '条': 299, '款': 300, '供': 301, '电': 302, '下': 303, '工': 304, '程': 305, '上': 306, '用': 307, '施': 308, '功': 309, '能': 310, '五': 311, '值': 312, '班': 313, '室': 314, '给': 315, '及': 316, '配': 317, '改': 318, '腰': 319, '表': 320, '示': 321, '综': 322, '体': 323, '书': 324, '远': 325, '大': 326, '理': 327, '目': 328, '的': 329, '窗': 330, '处': 331, '或': 332, '箍': 333, '筋': 334, '江': 335, '苏': 336, '省': 337, '饰': 338, '修': 339, '文': 340, '件': 341, '编': 342, '深': 343, '度': 344, '向': 345, '门': 346, '框': 347, '起': 348, '居': 349, '为': 350, '斜': 351, '额': 352, '流': 353, '锌': 354, '动': 355, '商': 356, '店': 357, '穿': 358, '线': 359, '库': 360, '模': 361, '量': 362, '宜': 363, '验': 364, '型': 365, '号': 366, '污': 367, '不': 368, '智': 369, '梯': 370, '立': 371, '进': 372, '救': 373, '援': 374, '勘': 375, '探': 376, '最': 377, '又': 378, '称': 379, '专': 380, '业': 381, '责': 382, '任': 383, '塔': 384, '住': 385, '宅': 386, '准': 387, '弱': 388, '尚': 389, '偿': 390, '吸': 391, '檩': 392, '览': 393, '圆': 394, '液': 395, '搁': 396, '置': 397, '认': 398, '可': 399, '由': 400, '太': 401, '阳': 402, '承': 403, '重': 404, '伸': 405, '前': 406, '后': 407, '矛': 408, '盾': 409, '裂': 410, '厅': 411, '错': 412, '封': 413, '系': 414, '数': 415, '要': 416, '求': 417, '泥': 418, '砂': 419, '浆': 420, 'Ⅳ': 421, '章': 422, '报': 423, '告': 424, '固': 425, '化': 426, '明': 427, '界': 428, '因': 429, '粮': 430, '柱': 431, '参': 432, '考': 433, '必': 434, '须': 435, '版': 436, '壁': 437, '知': 438, '厂': 439, '周': 440, '期': 441, '检': 442, '查': 443, '喷': 444, '浴': 445, '油': 446, '池': 447, '特': 448, '潜': 449, '泵': 450, '堵': 451, '汗': 452, '蒸': 453, '类': 454, '场': 455, '防': 456, '火': 457, '±': 458, '蝴': 459, '蝶': 460, '阁': 461, '埋': 462, '多': 463, '临': 464, '近': 465, '两': 466, '道': 467, '柔': 468, '遮': 469, '真': 470, '页': 471, '醚': 472, '杆': 473, '致': 474, '发': 475, '光': 476, '无': 477, '障': 478, '碍': 479, '倒': 480, '登': 481, '高': 482, '操': 483, '侧': 484, '沉': 485, '容': 486, '拉': 487, '托': 488, '儿': 489, '见': 490, '焚': 491, '烧': 492, '底': 493, '坑': 494, '段': 495, '时': 496, '搭': 497, '敷': 498, '禁': 499, '同': 500, '备': 501, '百': 502, '属': 503, '构': 504, '屋': 505, '第': 506, '八': 507, '指': 508, '辅': 509, '泳': 510, '谈': 511, '华': 512, '庭': 513, '院': 514, '缩': 515, '缝': 516, '试': 517, '桩': 518, '减': 519, '阀': 520, '非': 521, '洞': 522, '新': 523, '增': 524, '代': 525, '替': 526, '感': 527, '温': 528, '办': 529, '停': 530, '干': 531, '抗': 532, '豪': 533, '房': 534, '硬': 535, '清': 536, '楚': 537, '淋': 538, '顶': 539, '雷': 540, '保': 541, '证': 542, '玻': 543, '璃': 544, '长': 545, '具': 546, '银': 547, '刺': 548, '缆': 549, '故': 550, '腐': 551, '蚀': 552, '过': 553, '滤': 554, '蓄': 555, '生': 556, '物': 557, '厚': 558, '块': 559, '降': 560, '老': 561, '庄': 562, '环': 563, '式': 564, '正': 565, '尺': 566, '寸': 567, '组': 568, '织': 569, '摄': 570, '像': 571, '头': 572, '年': 573, '混': 574, '凝': 575, '看': 576, '碰': 577, '撞': 578, '交': 579, '档': 580, '案': 581, '刚': 582, '逐': 583, '阻': 584, '—': 585, '绿': 586, '色': 587, '做': 588, '好': 589, '限': 590, '元': 591, '启': 592, '张': 593, '加': 594, '剪': 595, '缺': 596, '客': 597, '户': 598, '端': 599, '闷': 600, '算': 601, '别': 602, '导': 603, '赋': 604, '存': 605, '低': 606, '氧': 607, '差': 608, '述': 609, '海': 610, '主': 611, '照': 612, '灯': 613, '横': 614, '静': 615, '渗': 616, '函': 617, '快': 618, '触': 619, '槽': 620, '米': 621, '湖': 622, '冷': 623, '却': 624, '率': 625, '软': 626, '治': 627, '爆': 628, '炸': 629, '资': 630, '壳': 631, '允': 632, '许': 633, '消': 634, '站': 635, '运': 636, '汽': 637, '剩': 638, '余': 639, '宽': 640, '更': 641, '原': 642, '局': 643, '透': 644, '附': 645, '方': 646, '法': 647, '乏': 648, '养': 649, '假': 650, '荧': 651, '翼': 652, '缘': 653, '除': 654, '至': 655, '包': 656, '被': 657, '圈': 658, '尤': 659, '其': 660, '夹': 661, '训': 662, '练': 663, '找': 664, '坡': 665, '拘': 666, '留': 667, '截': 668, '适': 669, '核': 670, '隔': 671, '判': 672, '成': 673, '纵': 674, '哪': 675, '廊': 676, '跨': 677, '滑': 678, '移': 679, '淮': 680, '市': 681, '病': 682, '篇': 683, '驿': 684, '脱': 685, '含': 686, '纸': 687, '藏': 688, '架': 689, '村': 690, '乙': 691, '扰': 692, '肋': 693, '状': 694, '态': 695, '插': 696, '座': 697, '套': 698, '和': 699, '二': 700, '灌': 701, '扶': 702, '燃': 703, '六': 704, '权': 705, '衡': 706, '木': 707, '桥': 708, '掩': 709, '敞': 710, '历': 711, '史': 712, '活': 713, '整': 714, '需': 715, '扩': 716, '伤': 717, '说': 718, '嵌': 719, '吨': 720, '箱': 721, '统': 722, '挖': 723, '节': 724, '现': 725, '矩': 726, '形': 727, '育': 728, '易': 729, '罩': 730, '司': 731, '寓': 732, '万': 733, '靠': 734, '选': 735, '亦': 736, '转': 737, '在': 738, '卫': 739, '径': 740, '恒': 741, '载': 742, '者': 743, '纳': 744, '每': 745, '栋': 746, '塑': 747, '输': 748, '送': 749, '样': 750, '析': 751, '灵': 752, '敏': 753, '黑': 754, '已': 755, '候': 756, '树': 757, '农': 758, '反': 759, '荷': 760, '双': 761, '三': 762, '殊': 763, '师': 764, '陶': 765, '瓷': 766, '盘': 767, '妥': 768, '卷': 769, '②': 770, '曲': 771, '杀': 772, '菌': 773, '甲': 774, '较': 775, '乱': 776, '耐': 777, '吊': 778, '龙': 779, '境': 780, '柜': 781, '渣': 782, '山': 783, '措': 784, '臭': 785, '采': 786, '子': 787, '信': 788, '息': 789, '种': 790, '烟': 791, '囱': 792, '涂': 793, '末': 794, '测': 795, '飘': 796, '研': 797, '究': 798, '檐': 799, '就': 800, '城': 801, '刷': 802, '盖': 803, '裙': 804, '医': 805, '协': 806, '调': 807, '布': 808, '异': 809, '互': 810, '影': 811, '响': 812, '暗': 813, '视': 814, '觉': 815, '尽': 816, '字': 817, '与': 818, '都': 819, '轮': 820, '足': 821, '够': 822, '级': 823, '便': 824, '谐': 825, '波': 826, '阴': 827, '槛': 828, '何': 829, '投': 830, '盆': 831, '石': 832, '墨': 833, '千': 834, '征': 835, '避': 836, '虽': 837, '然': 838, '废': 839, '精': 840, '厨': 841, '拣': 842, '派': 843, '教': 844, '使': 845, '诺': 846, '铝': 847, '栓': 848, '总': 849, '提': 850, '步': 851, '蔽': 852, '盒': 853, '完': 854, '纤': 855, '北': 856, '红': 857, '军': 858, '违': 859, '谱': 860, '星': 861, '己': 862, '洪': 863, '泽': 864, '守': 865, '脚': 866, '塘': 867, '叙': 868, '南': 869, '振': 870, '汇': 871, '再': 872, '循': 873, '营': 874, '根': 875, '街': 876, '迁': 877, '膨': 878, '胀': 879, '据': 880, '挡': 881, '家': 882, '园': 883, '产': 884, '品': 885, '挠': 886, '来': 887, '顺': 888, '序': 889, '少': 890, '监': 891, '沂': 892, '虚': 893, '延': 894, '支': 895, '×': 896, '将': 897, '缓': 898, '打': 899, '维': 900, '灭': 901, '欠': 902, '论': 903, '釆': 904, '艺': 905, '澄': 906, '速': 907, '粉': 908, '煤': 909, '灰': 910, '砖': 911, '堂': 912, '永': 913, '久': 914, '袋': 915, '廓': 916, '之': 917, '虫': 918, '复': 919, '⑥': 920, '净': 921, '名': 922, '雨': 923, '蓬': 924, '抹': 925, '利': 926, '断': 927, '超': 928, '如': 929, '漩': 930, '危': 931, '险': 932, '约': 933, '并': 934, '很': 935, '扇': 936, '诊': 937, '贴': 938, '淹': 939, '阶': 940, '婚': 941, '礼': 942, '县': 943, '贸': 944, '旧': 945, '残': 946, '疾': 947, '帘': 949, '隐': 950, '患': 951, '抬': 952, '贡': 953, '献': 954, '涟': 955, '绘': 956, '隙': 957, '遗': 958, '漏': 959, '了': 960, '片': 961, '初': 962, '药': 963, '膏': 964, '按': 965, '签': 966, '仅': 967, '货': 968, '栈': 969, '马': 970, '绝': 971, '螺': 972, '推': 973, '坠': 974, '花': 975, '济': 976, '溢': 977, '扬': 978, '扣': 979, '团': 980, '＃': 981, '短': 982, '路': 983, '离': 984, '展': 985, '直': 986, '棚': 987, '九': 988, '沟': 989, '股': 990, '份': 991, '胺': 992, 'φ': 993, '扉': 994, '十': 995, '殖': 996, '员': 997, '撤': 998, '朝': 999, '偏': 1000, '挂': 1001, '摩': 1002, '隈': 1003, '服': 1004, '务': 1005, '夏': 1006, '季': 1007, '造': 1008, '港': 1009, '染': 1010, '但': 1011, '徐': 1012, '什': 1013, '么': 1014, '比': 1015, '削': 1016, '辨': 1017, '筒': 1018, '仓': 1019, '广': 1020, '束': 1021, '璧': 1022, '持': 1023, '铰': 1024, '吻': 1025, '且': 1026, '列': 1027, '旋': 1028, '解': 1029, '锁': 1030, '妇': 1031, '幼': 1032, '健': 1033, '般': 1034, '淀': 1035, '剧': 1036, '酒': 1037, '叠': 1038, '画': 1039, '漆': 1040, '宿': 1041, '舍': 1042, '批': 1043, '普': 1044, '柴': 1045, '○': 1046, '日': 1047, '播': 1048, '茶': 1049, '是': 1050, '惰': 1051, '康': 1052, '符': 1053, '极': 1054, '醒': 1055, '划': 1056, '既': 1057, '泄': 1058, '估': 1059, '果': 1060, '男': 1061, '丁': 1062, '。': 1063, '盐': 1064, '左': 1065, '右': 1066, '当': 1067, '购': 1068, '该': 1069, '丙': 1070, '纯': 1071, '督': 1072, '碳': 1073, '四': 1074, '独': 1075, '次': 1076, '严': 1077, '射': 1078, '待': 1079, '跃': 1080, '筏': 1081, '、': 1082, '个': 1083, '域': 1084, '委': 1085, '会': 1086, '士': 1087, '群': 1088, '镀': 1089, '闪': 1090, '招': 1091, '西': 1092, '泡': 1093, '锈': 1094, '暖': 1095, '赵': 1096, '禅': 1097, '战': 1098, '灾': 1099, '烹': 1100, '饪': 1101, '免': 1102, '失': 1103, '→': 1104, '①': 1105, '黏': 1106, '粒': 1107, '匚': 1108, '勤': 1109, '科': 1110, '观': 1111, '众': 1112, '涤': 1113, '凤': 1114, '请': 1115, '晾': 1116, '晒': 1117, '央': 1118, '例': 1119, '衬': 1120, '职': 1121, '菱': 1122, '典': 1123, '垂': 1124, '语': 1125, 'Ф': 1126, '旁': 1127, '【': 1128, '乡': 1129, '问': 1130, '题': 1131, '另': 1132, '把': 1133, '幢': 1134, '贯': 1135, '坎': 1136, '侵': 1137, '恢': 1138, '似': 1139, '童': 1140, '切': 1141, '没': 1142, '胶': 1143, '神': 1144, '泛': 1145, '榀': 1146, '拔': 1147, '途': 1148, '荐': 1149, '难': 1150, '椅': 1151, '⊥': 1152, '轿': 1153, '厢': 1154, '里': 1155, '恩': 1156, '洁': 1157, '雪': 1158, '？': 1159, '露': 1160, '浮': 1161, '退': 1162, '格': 1163, '栅': 1164, 'Ⅲ': 1165, '眩': 1166, '换': 1167, '扫': 1168, '·': 1169, '壤': 1170, '络': 1171, '际': 1172, '彩': 1173, '损': 1174, '坏': 1175, '审': 1176, '毒': 1177, '桁': 1178, '倾': 1179, '匀': 1180, '㎜': 1181, '踏': 1182, '才': 1183, '斗': 1184, '炮': 1185, '记': 1186, '录': 1187, '弧': 1188, '误': 1189, '□': 1190, '呼': 1191, '叫': 1192, '剖': 1193, '抑': 1194, '瓶': 1195, '终': 1196, '止': 1197, '匹': 1198, '幕': 1199, '毕': 1200, '拟': 1201, '越': 1202, '破': 1203, '碎': 1204, '升': 1205, '括': 1206, '简': 1207, '湿': 1208, '…': 1209, '答': 1210, '镇': 1211, '黄': 1212, '尘': 1213, '话': 1214, '评': 1215, '坪': 1216, '卤': 1217, '浇': 1218, '矿': 1219, '扭': 1220, '砌': 1221, '械': 1222, '凸': 1223, '卧': 1224, '％': 1225, '娱': 1226, '乐': 1227, '得': 1228, '球': 1229, '继': 1230, '递': 1231, '轨': 1232, '闻': 1233, '伏': 1234, '浅': 1235, '欧': 1236, '姆': 1237, '雾': 1238, '杂': 1239, '键': 1240, '尼': 1241, '溅': 1242, '领': 1243, '烯': 1244, '游': 1245, '走': 1246, '氨': 1247, '酯': 1248, '竣': 1249, '熔': 1250, '显': 1251, '武': 1252, '兼': 1253, '善': 1254, '举': 1255, '景': 1256, '岗': 1257, '■': 1258, '盏': 1259, '占': 1260, '美': 1261, '國': 1262, '晰': 1263, '骨': 1264, '鉴': 1265, '腻': 1266, '七': 1267, '订': 1268, '≥': 1269, '融': 1270, '霜': 1271, '拌': 1272, '况': 1273, '钟': 1274, '吾': 1275, '择': 1276, '酸': 1277, '执': 1278, '坐': 1279, '抽': 1280, '而': 1281, '予': 1282, '’': 1283, '事': 1284, '突': 1285, '即': 1286, '稍': 1287, '描': 1288, '决': 1289, '叉': 1290, '餐': 1291, '淘': 1292, '汰': 1293, '折': 1294, '氯': 1295, '几': 1296, '急': 1297, '毫': 1298, '钮': 1299, '钻': 1300, '址': 1301, '侯': 1302, '疗': 1303, '察': 1304, '颗': 1305, '涉': 1306, '㎡': 1307, '扁': 1308, '往': 1309, '植': 1310, '擦': 1311, '粪': 1312, '频': 1313, '月': 1314, '竖': 1315, '从': 1316, '∨': 1317, '烘': 1318, '苑': 1319, '女': 1320, '～': 1321, '微': 1322, '刀': 1323, '‖': 1324, '】': 1325, '耗': 1326, '戊': 1327, '湾': 1328, '抄': 1329, '码': 1330, '帽': 1331, '概': 1332, '念': 1333, '识': 1334, '⑤': 1335, '锅': 1336, '炉': 1337, '讲': 1338, '脊': 1339, '册': 1340, '凹': 1341, '－': 1342, '冬': 1343, '垃': 1344, '圾': 1345, '情': 1346, '烈': 1347, '亮': 1348, '颁': 1349, '闲': 1350, '他': 1351, '橱': 1352, '岸': 1353, '音': 1354, '润': 1355, 'Ⅱ': 1356, '拐': 1357, '弯': 1358, '”': 1359, '暴': 1360, '浙': 1361, '仔': 1362, '墩': 1363, '潮': 1364, '；': 1365, '首': 1366, '销': 1367, '售': 1368, '抓': 1369, '紫': 1370, '牢': 1371, '壹': 1372, '挤': 1373, '貌': 1374, '企': 1375, '媒': 1376, '铁': 1377, '隅': 1378, '今': 1379, '世': 1380, '助': 1381, '溜': 1382, '卡': 1383, '逻': 1384, '辑': 1385, '芯': 1386, '象': 1387, '溶': 1388, '呋': 1389, '喃': 1390, '歇': 1391, '宾': 1392, '饱': 1393, '磁': 1394, '森': 1395, '林': 1396, '渡': 1397, '畴': 1398, '浓': 1399, '锥': 1400, '培': 1401, '志': 1402, '迹': 1403, '担': 1404, '索': 1405, '√': 1406, '它': 1407, '粗': 1408, '糙': 1409, 'Ⅹ': 1410, '蓓': 1411, '莎': 1412, '释': 1413, '堤': 1414, '借': 1415, '零': 1416, '糊': 1417, '暂': 1418, '串': 1419, '④': 1420, '背': 1421, '炭': 1422, '阅': 1423, '读': 1424, '始': 1425, '揭': 1426, '针': 1427, '泉': 1428, '肥': 1429, '⑧': 1430, '掺': 1431, '休': 1432, '篷': 1433, '航': 1434, '副': 1435, '臂': 1436, '腔': 1437, '访': 1438, '妨': 1439, '剂': 1440, '噪': 1441, '社': 1442, '绑': 1443, '扎': 1444, '齐': 1445, '仪': 1446, '°': 1447, '草': 1448, '逗': 1449, '沫': 1450, '蹲': 1451, '优': 1452, '先': 1453, '：': 1454, '肪': 1455, '著': 1456, '玄': 1457, '若': 1458, '青': 1459, '河': 1460, '良': 1461, '凡': 1462, 'λ': 1463, '价': 1464, '厦': 1465, '倍': 1466, 'Ⅰ': 1467, '拆': 1468, '涌': 1469, '颜': 1470, '颠': 1471, '困': 1472, '白': 1473, '炽': 1474, '宗': 1475, '叶': 1476, '皮': 1477, '迎': 1478, '屏': 1479, '坚': 1480, '乳': 1481, '财': 1482, '锤': 1483, '圩': 1484, '③': 1485, '翻': 1486, '砼': 1487, '田': 1488, '扑': 1489, '兴': 1490, '腹': 1491, '⑦': 1492, '博': 1493, '依': 1494, '攀': 1495, '队': 1496, 'ρ': 1497, '簧': 1498, '盗': 1499, '钩': 1500, '爬': 1501, '沥': 1502, '尧': 1503, '丰': 1504, '映': 1505, '也': 1506, '膜': 1507, '浪': 1508, '菇': 1509, '遵': 1510, '素': 1511, '馈': 1512, '碱': 1513, '寝': 1514, '牛': 1515, '腿': 1516, '钉': 1517, '脂': 1518, '対': 1519, '呈': 1520, '．': 1521, '京': 1522, '淤': 1523, '略': 1524, '割': 1525, '劲': 1526, '≤': 1527, '尖': 1528, '驳': 1529, '仍': 1530, '冻': 1531, '颈': 1532, '铜': 1533, '∽': 1534, '∪': 1535, '喇': 1536, '叭': 1537, '申': 1538, '邮': 1539, '牌': 1540, '印': 1541, '虑': 1542, '义': 1543, '纪': 1544, '宝': 1545, '偶': 1546, '我': 1547, '汉': 1548, '这': 1549, '们': 1550, '你': 1551, '着': 1552, '那': 1553, '她': 1554, '去': 1555, '想': 1556, '些': 1557, '爱': 1558, '亲': 1559, '尔': 1560, '孩': 1561, '夫': 1562, '眼': 1563, '听': 1564, '德': 1565, '稜': 1566, '死': 1567, '望': 1568, '命': 1569, '让': 1570, '父': 1571, '友': 1572, '笑': 1573, '英': 1574, '岁': 1575, '吃': 1576, '妈': 1577, '呢': 1578, '王': 1579, '思': 1580, '怎': 1581, '罗': 1582, '钱': 1583, '紶': 1584, '吗': 1585, '喜': 1586, '曾': 1587, '飞': 1588, '言': 1589, '欢': 1590, '晚': 1591, '窢': 1592, '早': 1593, '苦': 1594, '巴': 1595, '奇': 1596, '朋': 1597, '夜': 1598, '乎': 1599, '爸': 1600, '令': 1601, '吧': 1602, '希': 1603, '亚': 1604, '随': 1605, '演': 1606, '古': 1607, '諣': 1608, '拿': 1609, '您': 1610, '妻': 1611, '诉': 1612, '丽': 1613, '刻': 1614, '福': 1615, '惊': 1616, '脸': 1617, '争': 1618, '愿': 1619, '谁': 1620, '买': 1621, '阿': 1622, '诗': 1623, '痛': 1624, '竟': 1625, '幸': 1626, '兰': 1627, '怕': 1628, '毛': 1629, '句': 1630, '官': 1631, '跟': 1632, '费': 1633, '脑': 1634, '歌': 1635, '味': 1636, '笔': 1637, '甚': 1638, '某': 1639, '血': 1640, '习': 1641, '默': 1642, '娘': 1643, '怀': 1644, '蜖': 1645, '赛': 1646, '富': 1647, '梦': 1648, '跑': 1649, '掉': 1650, '香': 1651, '李': 1652, '激': 1653, '帝': 1654, '饭': 1655, '忘': 1656, '趣': 1657, '春': 1658, '丈': 1659, '顿': 1660, '睡': 1661, '跳': 1662, '获': 1663, '皇': 1664, '创': 1665, '奥': 1666, '谢': 1667, '弟': 1668, '害': 1669, '州': 1670, '睛': 1671, '忙': 1672, '哥': 1673, '遇': 1674, '姐': 1675, '伦': 1676, '贝': 1677, '啊': 1678, '船': 1679, '帮': 1680, '慢': 1681, '佛': 1682, '肯': 1683, '唱': 1684, '沙': 1685, '伯': 1686, '族': 1687, '玩': 1688, '顾': 1689, '泪': 1690, '洲': 1691, '圣': 1692, '兵': 1693, '哭': 1694, '劳': 1695, '姑': 1696, '陈': 1697, '莫': 1698, '鱼': 1699, '抱': 1700, '鲁': 1701, '票': 1702, '怪': 1703, '寻': 1704, '律': 1705, '胜': 1706, '洋': 1707, '床': 1708, '舞': 1709, '秘': 1710, '午': 1711, '贵': 1712, '追': 1713, '渐': 1714, '牙': 1715, '党': 1716, '赶': 1717, '胡': 1718, '吉': 1719, '卖': 1720, '喝': 1721, '肉': 1722, '松': 1723, '戏': 1724, '悲': 1725, '敢': 1726, '伊': 1727, '戴': 1728, '词': 1729, '耳': 1730, '祖': 1731, '云': 1732, '迷': 1733, '嘴': 1734, '冰': 1735, '席': 1736, '珍': 1737, '疑': 1738, '野': 1739, '犯': 1740, '拍': 1741, '臓': 1742, '巨': 1743, '琴': 1744, '忍': 1745, '洛': 1746, '塞': 1747, '忆': 1748, '付': 1749, '阵': 1750, '玛': 1751, '岛': 1752, '狗': 1753, '懂': 1754, '革': 1755, '恶': 1756, '恋': 1757, '拥': 1758, '娜': 1759, '妙': 1760, '呀': 1761, '摇': 1762, '弄': 1763, '桌': 1764, '熟': 1765, '宣': 1766, '势': 1767, '奖': 1768, '宫': 1769, '忽': 1770, '课': 1771, '鸟': 1772, '喊': 1773, '刘': 1774, '罪': 1775, '亡': 1776, '鞋': 1777, '败': 1778, '伴': 1779, '挥': 1780, '鲜': 1781, '孤': 1782, '枪': 1783, '恐': 1784, '伙': 1785, '杰': 1786, '妹': 1787, '藸': 1788, '遍': 1789, '坦': 1790, '秋': 1791, '萨': 1792, '菜': 1793, '授': 1794, '归': 1795, '奶': 1796, '雄': 1797, '碃': 1798, '莱': 1799, '盛': 1800, '蒙': 1801, '棋': 1802, '介': 1803, ',': 1804}\n"
     ]
    }
   ],
   "source": [
    "wenziarr=[]\n",
    "cut_zhuanzhe = lambda t: t.split('\\n')[0]\n",
    "wenziarr = list(map(cut_zhuanzhe, open('../data/dict_only_chinese_easy_words.csv',encoding='utf8').readlines()[0].split(',')))\n",
    "# wenziarr.remove(wenziarr[0])\n",
    "wenziarr.append(',')\n",
    "word2idx = {}\n",
    "idx2word = {}\n",
    "word2idx[' '] = 0\n",
    "idx2word[0] = ' '\n",
    "for idx, word in enumerate(wenziarr):\n",
    "    word2idx[wenziarr[idx]] = idx + 1\n",
    "    idx2word[idx + 1] = wenziarr[idx]\n",
    "print(len(word2idx),word2idx)\n",
    "max_idx = 0\n",
    "for idx in idx2word:\n",
    "    if idx > max_idx:\n",
    "        max_idx = idx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 收集的文本数据\n",
    "cut_pdf_all_word = '''一说起“深度学习”，自然就联想到它非常显著的特点“深、深、深”（重要的事说三遍），\n",
    "通过很深层次的网络实现准确率非常高的图像识别、语音识别等能力。因此，我们自然很容易就想到：\n",
    "深的网络一般会比浅的网络效果好，如果要进一步地提升模型的准确率，最直接的方法就是把网络设计得越深越好，\n",
    "这样模型的准确率也就会越来越准确。那现实是这样吗？先看几个经典的图像识别深度学习模型：这几个模型都是在\n",
    "世界顶级比赛中获奖的著名模型，然而，一看这些模型的网络层次数量，似乎让人很失望，少则5层，多的也就22层而已\n",
    "，这些世界级模型的网络层级也没有那么深啊，这种也算深度学习吗？为什么不把网络层次加到成百上千层呢？带着这个\n",
    "通过很深层次的网络实现准确率非常高的图像识别、语音识别等能力。因此，我们自然很容易就想到：\n",
    "深的网络一般会比浅的网络效果好，如果要进一步地提升模型的准确率，最直接的方法就是把网络设计得越深越好，\n",
    "这样模型的准确率也就会越来越准确。那现实是这样吗？先看几个经典的图像识别深度学习模型：这几个模型都是在\n",
    "世界顶级比赛中获奖的著名模型，然而，一看这些模型的网络层次数量，似乎让人很失望，少则5层，多的也就22层而已\n",
    "，这些世界级模型的网络层级也没有那么深啊，这种也算深度学习吗？为什么不把网络层次加到成百上千层呢？带着这个\n",
    "通过很深层次的网络实现准确率非常高的图像识别、语音识别等能力。因此，我们自然很容易就想到：\n",
    "深的网络一般会比浅的网络效果好，如果要进一步地提升模型的准确率，最直接的方法就是把网络设计得越深越好，\n",
    "这样模型的准确率也就会越来越准确。那现实是这样吗？先看几个经典的图像识别深度学习模型：这几个模型都是在\n",
    "世界顶级比赛中获奖的著名模型，然而，一看这些模型的网络层次数量，似乎让人很失望，少则5层，多的也就22层而已\n",
    "，这些世界级模型的网络层级也没有那么深啊，这种也算深度学习吗？为什么不把网络层次加到成百上千层呢？带着这个\n",
    "问题，我们先来看一个实验，对常规的网络（plainnetwork，也称平原网络）直接堆叠很多层次，经对图像识别结果\n",
    "进行检验，训练集、测试集的误差结果如下图：'''.replace('\\n', '').replace(' ', '')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def one_process(length, start_idx, jia=False, word_idx = 0):\n",
    "    \"\"\"\n",
    "    每个线程生成length个图片，每个图片8～14个文字\n",
    "    \"\"\"\n",
    "    for i in range(start_idx+1, start_idx+length):\n",
    "        if word_idx > len(cut_pdf_all_word) - 14:\n",
    "            word_idx = 0\n",
    "        word_length = random.randint(8, 14)\n",
    "        text, label = gen_text(word_length, cut_pdf_all_word, word_idx)\n",
    "        word_idx += word_length\n",
    "        image = Image.new(\"RGB\", (420, 40), (255, 255, 255))\n",
    "        image = gen_one_img(image, text, random.randint(0, len(fontarr)-1))\n",
    "        image = np.array(image)\n",
    "        if jia == True:\n",
    "            jiazaosheng(image, (255, 255, 255), 0.05)\n",
    "        output = cut_lines(image)\n",
    "        if len(output) != 1:\n",
    "            continue\n",
    "        img = image[output[0][0]:output[0][1],:,:]\n",
    "        h, w, _ = img.shape\n",
    "        bili = 30 * 1.0 / h\n",
    "        aim_h = 30\n",
    "        aim_w = int(bili * w)\n",
    "        img = cv2.resize(img, (aim_w, aim_h))\n",
    "        h, w, _ = img.shape\n",
    "        newimg = np.ones([42, 805, 3], np.uint8) * 255\n",
    "        if w> 805:\n",
    "            continue\n",
    "        newimg[5:35,:w,:] = img\n",
    "        filename = \"../data/images/img_\"\n",
    "        filename += '-'.join(list(map(str, label)))\n",
    "        filename += \"_\"+str(i)+'.jpg'\n",
    "        cv2.imwrite(filename, newimg)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "for idx in [1, 2]:\n",
    "    processes = []\n",
    "    for i in range(idx, idx+10, 2):\n",
    "        processes.append(Process(target=one_process, args=(50, i*200, True,i * 14* 2)))\n",
    "    for i in range(len(processes)):\n",
    "        processes[i].start()\n",
    "    for i in range(len(processes)):\n",
    "        processes[i].join()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pickle\n",
    "pickle.dump(word2idx, open('../data/word2idx3.pkl', 'wb'))\n",
    "pickle.dump(idx2word, open('../data/idx2word3.pkl', 'wb'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "电\n",
      "系\n",
      "统\n",
      "电\n",
      "力\n",
      "系\n",
      "统\n"
     ]
    }
   ],
   "source": [
    "for i in [302,414,722,302,177,414,722]:\n",
    "    print(idx2word[i])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<PIL.ImageFont.FreeTypeFont at 0x10e091f10>,\n",
       " <PIL.ImageFont.FreeTypeFont at 0x12668d8d0>]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fontarr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  },
  "pycharm": {
   "stem_cell": {
    "cell_type": "raw",
    "source": [],
    "metadata": {
     "collapsed": false
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}